<html>

<head>
    <title>main()方法</title>
</head>

<body>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="classdef.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=bottom border=0
                        alt="Previous | "></a><a href="objects.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=bottom border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=bottom border=0
                        alt="Trail Map | "></a><a href="../index.html"><img src=../../images/javaHeader.gif width=26
                        height=26 align=bottom border=0 alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>Java应用程序剖析</em></strong></a>
            </td>
        </tr>
    </table>
    <p>
        <hr size=4>

    <h2>
        main()方法
    </h2>
    <p>
    <blockquote>

        <blockquote>
            <pre>
import java.util.Date;
class DateApp {
    <strong>public static void main(String args[]) {</strong>
        Date today = new Date();
        System.out.println(today);
    <strong>}</strong>
}
</pre>
        </blockquote>
        一个Java程序(例如上面的<code>DateApp</code>)必须包含一个<code>main()</code>方法，它的格式如下所示：
        <blockquote>
            <pre>
public static void main(String args[])
</pre>
        </blockquote>
        在<code>main()</code>方法的格式中，它包含了三个修饰符：
        <ul>
            <li>
                <code>public</code>表示<code>main()</code>方法可以被任意一个对象调用。
                <a href="../../MissingPage.html">丢失的页面</a>中详细介绍了Java语言支持的访问修饰符：public、private、protected、implicit和friendly。
            <li>
                <code>static</code>表示<code>main()</code>方法是一个静态方法(也被称为类方法)。
                此课程后面有一节课——<a href=static.html>静态和实例对比解析</a>——讨论了关于静态方法和变量的更多细节。
            <li>
                <code>void</code>表示<code>main()</code>方法没有返回值。
        </ul>
        Java中的<code>main()</code>方法与C和C++中的<code>main()</code>方法很类似。当你运行一个C或者C++程序时，系统会首先调用它的<code>main()</code>函数来运行程序。同样地，在Java语言中，当你使用Java解释器执行一个类时，系统也会首先调用类中的<code>main()</code>方法来运行程序，然后<code>main()</code>方法会调用运行你程序所需的全部其他方法。
        <p>
            如果你尝试使用Java解释器去运行一个没有<code>main()</code>方法的类，Java解释器会打印错误信息，具体细节请参考
            <a href=../../troubleshooting/interpreterproblems.html>解释器常见问题与疑难解答</a>
            <a href=../../troubleshooting/interpreterproblems.html><img src=../../images/troubleIcon.gif width=20
                    height=20 border=0></a>.

        <h4>main()方法的参数
        </h4>
        <blockquote>
            正如上面代码片段中你所看到的那样，<code>main()</code>方法接收一个参数：一个字符串数组。
            <blockquote>
                <pre>
public static void main(<strong>String args[]</strong>)
</pre>
            </blockquote>
            系统通过这个字符串数组向你的程序传递信息。数组中的字符串被称为<em>命令行参数</em>，命令行参数使得用户可以在不用重新编译的情况下改变程序的运行行为。
            例如，一个排序程序可能允许用户使用以下命令行参数来要求需要对数据进行降序排序：
            <blockquote>
                <pre>
-descending
</pre>
            </blockquote>
            <p>
                <code>DateApp</code>程序忽略了它的命令行参数，因此这里没有对命令行参数进行过多的讨论，但是，在
                <a href=../cmdLineArgs/index.html><em>命令行参数</em></a>
                <a href=../cmdLineArgs/index.html><img src=../../images/javaIcon.gif height=20 width=20 border=0></a>
                课程中，你可以了解到更多的关于命令行参数的有关信息，比如自定义命令行解释器以完成你需要的特殊功能。
            <p>
                <hr>
                <strong>对C和C++程序员的建议：</strong>
                传递到Java运行环境中的<code>main()</code>方法的参数的数量和类型与传递到C和C++程序中的<code>main()</code>函数的参数的数量和类型有所不同，更多信息请参考
                <a href=../../noMoreC/cmdLineArgs.html>Java的命令行参数与C和C++的不同之处</a>
                <a href=../../noMoreC/cmdLineArgs.html><img src=../../images/noCIcon.gif height=20 width=20
                        border=0></a>.
                <hr>
        </blockquote>

    </blockquote>
    <p>
        <hr size=4>
    <p>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="classdef.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=top border=0
                        alt="Previous | "></a><a href="objects.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=top border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=top border=0 alt="Trail Map | "></a><a
                    href="../index.html"><img src=../../images/javaHeader.gif width=26 height=26 align=top border=0
                        alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>Java应用程序剖析</em></strong></a>
            </td>
        </tr>
    </table>
</body>

</html>